package com.zzj.service;

import com.zzj.entity.File;
import com.zzj.entity.Folder;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 文件夹表 服务类
 * </p>
 *
 * @author zzj
 * @since 2023-11-14
 */
public interface IFolderService extends IService<Folder> {
    /**
     * 数据库创建文件夹记录
     * @param creatorId
     * @param pathName
     * @param parentId
     * @return
     */
    Folder create(String creatorId, String pathName, String parentId);

    /**
     * 检查当前用户、目录下是否存在同名文件夹
     * @param creatorId
     * @param pathName
     * @param parentId
     * @return
     */
    boolean checkExist(String creatorId, String pathName, String parentId);

    /**
     * 检查当前用户、目录下是否存在文件夹 是否有效
     * @param creatorId
     * @param pathName
     * @param parentId
     * @return
     */
    boolean checkParentValid(String creatorId, String pathName, String parentId);

    /**
     * 查询当前用户、目录下所有文件夹
     * @param creatorId
     * @param parentId
     * @return
     */
    List<Folder> queryList(String creatorId, String parentId);

    /**
     * 查询当前用户、目录下所有匹配关键字文件夹
     * @param creatorId
     * @param parentId
     * @param searchKey
     * @return
     */
    List<Folder> queryList(String creatorId, String parentId, String searchKey);

    /**
     * 查询当前用户所有匹配关键字文件夹
     * @param creatorId
     * @param searchKey
     * @param f
     * @return
     */
    List<Folder> queryList(String creatorId, String searchKey, boolean f);

    /**
     * 修改文件夹名称
     * 查看该父文件夹下是否有同名文件夹
     * 有则返回false 无则修改
     *
     * @param id
     * @param name
     * @return
     */
    boolean updateName(String id, String parentId, String name);

    List<Folder> getFolderList(String parentId);
    Folder getById(String id);


}
